/*
 * Exploder
 * 
 * Tero Pyylampi (218437), Jussi Tuurinkoski (211594)
 *
 * A collection of static functions available for LUA interface
 */

#ifndef GAMELEVELENGINE_H
#define GAMELEVELENGINE_H

#include "../../Common.h"
#include "../GameCamera.h"

#include "cocos2d.h"
#include "Box2D/Box2D.h"

class LuaInterface;
class GameEngine;
class GameCamera;

class GameLevelEngine {
public:
	// default constructor
	GameLevelEngine( LuaInterface *luaInterface, GameEngine *gameEngine, GameCamera *gameCamera );
	// default destructor
	~GameLevelEngine();

	// start level
	void startLevel( char *level );

	// update this engine
	void update( cocos2d::ccTime dt );

	// static functions available for lua-engine through a wrapper
	
	// create a construction element to the level
	static void createConstructionElement( ElementType itemProperties, float worldX, float worldY, float rotation, PhysicObjectItems itemMainType );

private:
	// lua interface used
	LuaInterface *mLuaInterface;

	// pointer to the game engine
	static GameEngine *mGameEngine;
	// pointer to the game camera
	static GameCamera *mGameCamera;

};

#endif